﻿/*
 * ----------------------------------------------------------------
 * Copyright @ @@神农写代码 2023. All rights reserved.
 
 * 作    者 ：@@神农写代码 
 
 * 创建时间 ：2023/2/8 19:36:07
 
 * CLR 版本 ：4.0.30319.42000
 
 * 命名空间 ：GCNF.Algorithm.MinimumActivity
 
 * 类 名 称 ：LeastActive

 * 类 描 述 ：
 
 * 博客地址：fu-shi-rong.blog.csdn.net
 
 * ------------------------------------------------------
 * 历史更新记录
 
 * 版本 ：  V1.0.0.0        修改时间：2023/2/8 19:36:07         修改人：
 
 * 修改内容：
 * 
 */
using System;
using System.Collections.Generic;
using System.Text;

namespace GCNF.Algorithm.MinimumActivity
{
    public class LeastActive : AbstractLeastActive
    {
        /// <summary>
        /// 获取最小活跃数据
        /// </summary>
        /// <returns></returns>
        public override string GetValue()
        {
            string value = "";
            //筛选数据
            this.FilterMinValue();
            if (this.list.Count == 1)
            {
                value = this.list[0];
                //活跃数加1
                this.AddActive(value);
                return value;
            }
            else if (this.list.Count > 1) 
            {
                value = this.RandomValue();
                //活跃数加1
                this.AddActive(value);
                return value;
            }
            return value;
        }
        /// <summary>
        /// 最小活跃数据释放 
        /// </summary>
        /// <param name="key"></param>
        public override void Dispose(string key)
        {
            keyValuePairs.TryUpdate(key, keyValuePairs[key] - 1, keyValuePairs[key]);
        }
    }
}
